package models

import (
	"gorm.io/gorm"
	"order_srv/basic/config"
	"time"
)

type Trajectory struct {
	Id        uint32    `gorm:"column:id;type:int UNSIGNED;primaryKey;not null;" json:"id"`
	OrderId   uint32    `gorm:"column:order_id;type:int UNSIGNED;comment:订单id;not null;" json:"order_id"`       // 订单id
	Point     int8      `gorm:"column:point;type:tinyint(1);comment:1-途经点 2-上车点 3-下车点;default:3;" json:"point"` // 1-途经点 2-上车点 3-下车点
	Latitude  float64   `gorm:"column:latitude;type:decimal(10, 2);comment:纬度;not null;" json:"latitude"`       // 纬度
	Longitude float64   `gorm:"column:longitude;type:decimal(10, 2);comment:经度;not null;" json:"longitude"`     // 经度
	CreateAt  time.Time `gorm:"column:create_at;type:datetime;not null;default:CURRENT_TIMESTAMP;" json:"create_at"`
	UpdateAt  time.Time `gorm:"column:update_at;type:datetime;not null;default:CURRENT_TIMESTAMP;" json:"update_at"`
	DeleteAt  time.Time `gorm:"column:delete_at;type:datetime;default:NULL;" json:"delete_at"`
}

func (t *Trajectory) TableName() string {
	return "trajectory"
}

// 添加
func (t *Trajectory) Create(tx *gorm.DB) error {
	return tx.Create(&t).Error
}

// 列表
func (t *Trajectory) GetListByOrderId() (list []Trajectory, err error) {
	err = config.DB.Model(&Trajectory{}).Where("order_id = ?", t.OrderId).Order("create_at desc").Find(&list).Error
	return
}
